home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / TACHBAR.BAS < prev    next >
BASIC Source File  |  1992-02-18  |  2KB  |  70 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: TACHBAR.BAS        PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 02/18/92
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THIS PROGRAM DISPLAYS A TACHOMETER-STYLE BAR TO TRACK
  7. '  PROGRESS AS SOMETHING HAPPENS (COPIES, SORTS, CALCS, ETC)
  8. '  VERSION: 0.00    LAST UPDATED: 00/00/00
  9. '----------------------------------------------------------
  10. CLS
  11. LOCATE 1,25:PRINT "PROGRESSIVE TACHOMETER BAR  - EXAMPLE PROGRAM"
  12. LOCATE 5,5:PRINT "THE COMPUTER WILL COUNT TO A NUMBER YOU SPECIFY"
  13. LOCATE 6,5:PRINT "BETWEEN 5000 AND 50000, ENTER 0 TO QUIT."
  14. LOCATE 7,5:INPUT "ENTER NUMBER [5000-50000] :";NUMBER&
  15. IF NUMBER& = 0 THEN
  16.    LOCATE 24,1
  17.    END
  18. END IF
  19. IF NUMBER& < 5000 OR NUMBER& > 50000 THEN
  20.    LOCATE 24,1:PRINT "NUMBER OUTSIDE VALID RANGE, PROGRAM ABORTING."
  21.    END
  22. END IF
  23.  
  24. '** FOLLOWING LINES ARE INITIALIZATION **
  25. BAR.LENGTH% = 60  :REM** ACTUAL LENGTH IS HALF OF THIS **
  26. BAR.STEP& = NUMBER& \ (BAR.LENGTH% * 2):BAR.NEXT& = BAR.STEP&:FULL% = 0
  27. FULL$ = "█":HALF$ = "▌":REM CHR$(219) AND CHR$(221)
  28. XLINE% = 12:XCOL% = 2:FULL% = 0:
  29. '** DISPLAY LEFT/RIGHT ARROW DELIMITERS **
  30. LOCATE XLINE%, 1:PRINT CHR$(16):REM LEFT ARROW
  31. LOCATE XLINE%, BAR.LENGTH% + 2:PRINT CHR$(17):REM RIGHT ARROW
  32.  
  33. '** FOR THE DEMO, WE'LL USING A PROGRESS BOX FOR THE NUMBERS **
  34. LOCATE 9,1:PRINT  "╔══════════╦═════════╗"
  35. LOCATE 10,1:PRINT "║ XXX,XXX  ║  XXX %  ║"
  36. LOCATE 11,1:PRINT "╚══════════╩═════════╝"
  37. FOR I& = 1 TO NUMBER&
  38.    LOCATE 10,3:PRINT USING "###,###";I&
  39.    GOSUB TACHBAR1
  40. NEXT I&
  41.  
  42. LOCATE 23,1
  43. END
  44. '
  45. '
  46. '----------------------------------------------------------
  47. TACHBAR1:
  48.    IF I& => BAR.NEXT& THEN
  49.       BAR.NEXT& = BAR.NEXT& + BAR.STEP&
  50.       BAR.PCT% = 100 * (I& / NUMBER&)
  51.       '**  IF YOU DON'T WANT HALF-CHARACTERS USED IN THE BAR, DELETE **
  52.       '**  THE LINES WITH THE "ELSE", TAKE OUT THE "IF FULL%..."     **
  53.       '**  AND YOU'LL HAVE ONLY 1 CHARACTER SEGMENTS TO STEP.        **
  54.       IF FULL% = 1 THEN
  55.          FULL% = 0
  56.          CHAR$ = FULL$
  57.          LOCATE XLINE%, XCOL%:PRINT CHAR$;
  58.          XCOL% = XCOL% + 1
  59.       ELSE
  60.          CHAR$ = HALF$
  61.          FULL% = 1
  62.          LOCATE XLINE%,XCOL%:PRINT CHAR$;
  63.       END IF
  64.       '** THIS NEXT LINE IS OPTIONAL, OR YOU CAN DISPLAY IT ELSEWHERE **
  65.       LOCATE 10, 15:PRINT USING "### %";BAR.PCT%
  66.    END IF
  67.  
  68. RETURN
  69.  
  70.